home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 576-600 / disk_587 / conlib / misc_stuff / oberon_conlib.mod < prev   
Text File  |  1992-05-06  |  8KB  |  201 lines

  1. (******************************************************************
  2. ****
  3. ****    Name:   ConLib.mod
  4. ****
  5. ****    Author: Bjørn Reese
  6. ****
  7. ****    Template of Oberon Module for 'con.library'
  8. ****
  9. ****    WARNING!! Not tested at all!
  10. ****
  11. ******************************************************************)
  12.  
  13. MODULE ConLib;
  14.  
  15. IMPORT    e :Exec;
  16.  
  17.   ADDRESS * = e.ADDRESS;
  18.   CHARDEFSIZE * = 36;
  19.   IGNOREVALUE * = -1;
  20.  
  21. TYPE
  22.   ConBase * = STRUCT
  23.     con_Lib * : e.Library;        (* Library Node *)
  24.     con_SegList * : ADDRESS;        (* Segment List [from LoadSeg()] *)
  25.     con_IntBase * : ADDRESS;        (* Intuition Base *)
  26.     con_MathBase * : ADDRESS;        (* MathFFP Base *)
  27.   END;
  28.   ConBasePtr * = POINTER TO ConBase;
  29.   ConHandle * = STRUCT
  30.     cnh_CDBase * : ADDRESS;        (* Base of Console Device *)
  31.     cnh_Window * : ADDRESS;        (* Our Intuition Window *)
  32.     cnh_UserPort * : ADDRESS;        (* UserPort for Window *)
  33.     cnh_Unit * : ADDRESS;        (* ConUnit *)
  34.     cnh_WriteIO * : ADDRESS;        (* Our Write IO Port *)
  35.     cnh_Signal * : LONGSET;        (* SignalSet [for Wait()] *)
  36.     cnh_ExLength * : INTEGER;        (* Extra Space for String Formatting *)
  37.     cnh_CursorStatus * : INTEGER;    (* Current Cursor Status [on/off] *)
  38.     cnh_PadSpace * : CHAR;        (* Char for Leading Spaces in Numbers *)
  39.     cnh_PadZero * : CHAR;        (* Char for Leading Zeros in Numbers *)
  40.     cnh_PadGroup * : CHAR;        (* Char for Group Classifying *)
  41.     cnh_PadString * : CHAR;        (* Char for Unused String Positions *)
  42.     cnh_DecimalPoint * : CHAR;        (* Char for Decimal Point *)
  43.     cnh_FloatE * : CHAR;        (* Char for Floating Point Exponent *)
  44.     cnh_EchoTable * : ARRAY CHARDEFSIZE OF SHORTINT;    (* BitTable for Echo Chars *)
  45.     cnh_UserNotes * : ARRAY 8 OF ADDRESS;    (* List of Pointers to UserNotes *)
  46.     cnh_MsgHandler * : ADDRESS;        (* Pointer to a User Message Handler *)
  47.     cnh_Reserved * : ARRAY 4 OF LONGINT;
  48.   END;
  49.   ConHandlePtr * = POINTER TO ConHandle;
  50.   ConInfo * = STRUCT
  51.     cin_XPos * : INTEGER;        (* Cursor X Position *)
  52.     cin_YPos * : INTEGER;        (* Cursor Y Position *)
  53.     cin_XSize * : INTEGER;        (* Chars per Line *)
  54.     cin_YSize * : INTEGER;        (* Lines in Window *)
  55.     cin_Styles * : INTEGER;        (* Text Styles *)
  56.     cin_FgCol * : INTEGER;        (* ForeGround Color *)
  57.     cin_BgCol * : INTEGER;        (* BackGround Color *)
  58.     cin_Reserved * : ARRAY 4 OF LONGINT;
  59.   END;
  60.   ConInfoPtr * = POINTER TO ConInfo;
  61.   AcceptStructure * = STRUCT
  62.     acc_XStart * : INTEGER;        (* Start X Position *)
  63.     acc_YStart * : INTEGER;        (* Start Y Position *)
  64.     acc_Styles * : INTEGER;        (* Text Styles *)
  65.     acc_FgCol * : INTEGER;        (* ForeGround Color *)
  66.     acc_BgCol * : INTEGER;        (* BackGround Color *)
  67.     acc_ExitFlags * : LONGSET;        (* IDCMP Exit Flags *)
  68.     acc_Class * : LONGSET;        (* Copy of im_Class *)
  69.     acc_Code * : INTEGER;        (* Copy of im_Code *)
  70.     acc_Qualifier * : INTEGER;        (* Copy of im_Qualifier *)
  71.     acc_IAddress * : ADDRESS;        (* Copy of im_IAddress *)
  72.     acc_MouseX * : INTEGER;        (* Copy of im_MouseX *)
  73.     acc_MouseY * : INTEGER;        (* Copy of im_MouseY *)
  74.     acc_Seconds * : LONGINT;        (* Copy of im_Seconds *)
  75.     acc_Micros * : LONGINT;        (* Copy of im_Micros *)
  76.     acc_IDCMPWindow : ADDRESS;        (* Copy of im_IDCMPWindow *)
  77.     acc_ValidTable * : ARRAY CHARDEFSIZE OF SHORTINT;    (* BitTable of Valid Chars *)
  78.     acc_ExitTable * : ARRAY CHARDEFSIZE OF SHORTINT;    (* BitTable of Exit Chars *)
  79.     acc_Char * : CHAR;            (* ASCII char *)
  80.     acc_Pad001 * : SHORTINT;        (* Nothing serious *)
  81.     acc_Reserved * : ARRAY 4 OF LONGINT;
  82.   END;
  83.   AcceptStructurePtr * = POINTER TO AcceptStructure;
  84.   EAcceptStructure * = STRUCT
  85.     accs_InputBuffer * : ADDRESS;    (* Pointer to Input Buffer *)
  86.     accs_UndoBuffer * : ADDRESS;    (* Pointer to Work Buffer *)
  87.     accs_MaxLength * : INTEGER;        (* Maximum Length of Text [incl. NULL] *)
  88.     accs_FieldLen * : INTEGER;        (* Length of Input Field [incl. NULL] *)
  89.     accs_Length * : INTEGER;        (* Current Length of Text [excl. NULL] *)
  90.     accs_Position * : INTEGER;        (* Current Position in Text *)
  91.     accs_DispPos * : INTEGER;        (* First Displayed Position in Text *)
  92.     accs_Reserved * : ARRAY 4 OF LONGINT;
  93.   END;
  94.   EAcceptStructurePtr * = POINTER TO EAcceptStructure;
  95.  
  96. CONST
  97.   DEFMODE_ALL * = 0;
  98.   DEFMODE_NEW * = 1;
  99.   DEFMODE_ADD * = 2;
  100.   DEFMODE_REM * = 3;
  101.   DEFMODE_GET * = 4;
  102.   DEFALL * = 0;
  103.   DEFNONE * = 00020000H;
  104.   DEFALFANUM * = 00040000H;
  105.   DEFALFA * = 00060000H;
  106.   DEFNUMERIC * = 00080000H;
  107.   DEFDECIMAL * = 000A0000H;
  108.   DEFHEX * = 000C0000H;
  109.   DEFOCTAL * = 000E0000H;
  110.   DEFBINARY * = 00100000H;
  111.   DEFFLOAT * = 00120000H;
  112.   CURSOROFF * = 0;
  113.   CURSORON * = 1;
  114.   ACCB_ERASE * = 31;
  115.   ACCF_ERASE * = 80000000H;
  116.   ACCB_RAWKEY * = 28;
  117.   ACCF_RAWKEY * = 10000000H;
  118.   ACCB_DUALKEY * = 27;
  119.   ACCF_DUALKEY * = 08000000H;
  120.   ACCB_UPKEY * = 26;
  121.   ACCF_UPKEY * = 04000000H;
  122.   ACCB_ECHO * = 25;
  123.   ACCF_ECHO * = 0200000H;
  124.   ACCB_WAIT * = 24;
  125.   ACCF_WAIT * = 01000000H;
  126.   ACCB_JUSTIFIED * = 22;
  127.   ACCF_JUSTIFIED * = 00400000H;
  128.   ACCB_CONTINUE * = 21;
  129.   ACCF_CONTINUE * = 00200000H;
  130.   ACCB_OVERWRITE * = 20;
  131.   ACCF_OVERWRITE * = 00100000H;
  132.   ACCB_LASTEXIT * = 19;
  133.   ACCF_LASTEXIT * = 00080000H;
  134.   ACCB_FULLSTOP * = 18;
  135.   ACCF_FULLSTOP * = 00040000H;
  136.   ACCB_NOAMIGA * = 17;
  137.   ACCF_NOAMIGA * = 00020000H;
  138.   ACCB_NOSTDAMIGA * = 16;
  139.   ACCF_NOSTDAMIGA * = 00010000H;
  140.   ACCB_NOSCROLL * = 15;
  141.   ACCF_NOSCROLL * = 00008000H;
  142.   SGFB_PLAIN * = 0;
  143.   SGFF_PLAIN * = 0000H;
  144.   SGFB_BOLD * = 1;
  145.   SGFF_BOLD * = 0001H;
  146.   SGFB_ITALIC * = 2;
  147.   SGFF_ITALIC * = 0002H;
  148.   SGFB_UNDERLINED * = 3;
  149.   SGFF_UNDERLINED * = 0004H;
  150.   CNV_DECIMAL * = 00000001H;
  151.   CNV_HEX * = 00000002H;
  152.   CNV_OCTAL * = 00000003H;
  153.   CNV_BINARY * = 00000004H;
  154.   CNV_SIGNED * = 00010000H;
  155.   CNV_LEADSPACE * = 00020000H;
  156.   AKEY_NONE * = 0;
  157.   AKEY_HELP * = 5;
  158.   AKEY_BS * = 8;
  159.   AKEY_TAB * = 9;
  160.   AKEY_LF * = 10;
  161.   AKEY_RETURN * = 13;
  162.   AKEY_ARROWRG * = 17;
  163.   AKEY_ARROWLF * = 18;
  164.   AKEY_ARROWUP * = 19;
  165.   AKEY_ARROWDN * = 20;
  166.   AKEY_ESC * = 27;
  167.   AKEY_DEL * = 127;
  168.   AKEY_F1 * = 129;
  169.   AKEY_F2 * = 130;
  170.   AKEY_F3 * = 131;
  171.   AKEY_F4 * = 132;
  172.   AKEY_F5 * = 133;
  173.   AKEY_F6 * = 134;
  174.   AKEY_F7 * = 135;
  175.   AKEY_F8 * = 136;
  176.   AKEY_F9 * = 137;
  177.   AKEY_F10 * = 138;
  178.   AKEY_CSI * = 155;
  179.  
  180. VAR
  181.   con* [4] : ConBasePtr;
  182.  
  183. PROCEDURE OpenCon * {con, -30} (ConWindow {8}:ADDRESS; CursorMode {0}:INTEGER):ADDRESS;
  184. PROCEDURE CloseCon * {con, -36} (ConHandle {8}:ADDRESS);
  185. PROCEDURE DoFormat * {con, -42} (ConHandle {8}, String {9}, FormatArgs {10}, TextBuffer {11}:ADDRESS; BufferSize {0}: LONGINT):ADDRESS;
  186. PROCEDURE UserNotes * {con, -48} (ConHandle {8}, UserText {9}:ADDRESS; NoteNumber {0}:INTEGER);
  187. PROCEDURE DefineChars * {con, -54} (Mode {0}:INTEGER; BitTable {9}, ArrayOfChars {10}:ADDRESS);
  188. PROCEDURE DisplayRaw * {con, -60} (ConHandle {8}, String {9}:ADDRESS; MaxLength {0}:LONGINT);
  189. PROCEDURE Display * {con, -66} (ConHandle {8}, String {9}, FormatArgs {10}:ADDRESS; MaxLength {0}:LONGINT);
  190. PROCEDURE Accept * {con, -72} (ConHandle {8}, AcceptStructure {9}:ADDRESS; Flags {0}:LONGINT):LONGINT;
  191. PROCEDURE AcceptString * {con, -78} (ConHandle {8}, AcceptStructure {9}:ADDRESS; Flags {0}:LONGINT):LONGINT;
  192. PROCEDURE SetMsgHandler * {con, -84} (ConHandle {8}, NewMsgHandler {9}:ADDRESS):ADDRESS;
  193. PROCEDURE GetInfo * {con, -90} (ConHandle {8}, ConInfo {9}:ADDRESS):ADDRESS;
  194. PROCEDURE SetGfx * {con, -96} (ConHandle {8}:ADDRESS; Styles {0}, FgCol {1}, BgCol {2}:INTEGER);
  195. PROCEDURE GotoXY * {con, -102} (ConHandle {8}:ADDRESS; X {0}, Y {1}: INTEGER);
  196. PROCEDURE Cursor * {con, -108} (ConHandle {8}:ADDRESS; Mode {0}:INTEGER);
  197. PROCEDURE Scroll * {con, -114} (ConHandle {8}:ADDRESS; Step {0}:INTEGER);
  198. PROCEDURE Convert * {con, -120} (String {9}, ResultBuffer {10}:ADDRESS; Flags {0}:LONGINT; MaxLength {1}:INTEGER):ADDRESS;
  199.  
  200. END ConLib.
  201.